package com.flyme.module.base.provider.service;

import com.flyme.core.base.supper.entity.EntityMap;
import com.flyme.core.base.supper.service.IBaseService;
import com.flyme.module.base.client.entity.SysMessageSend;

import java.util.List;

/**
 * 消息接收
 * @author Exrick
 */
public interface SysMessageSendService extends IBaseService<SysMessageSend> {

    /**
     * 通过消息id删除
     * @param messageId
     */
    void deleteByMessageId(Long...messageId);
    /**
     * 查询最新个人消息
     * @param userId
     */
    EntityMap getLastUserMessage(Long userId);
    /**
     * 查询最新系统消息
     * @param userId
     */
    EntityMap getLastSysrMessage(Long userId);
    /**
     * 根据消息类型统计个人未读消息数量
     * @param userId
     */
    int countByStatus(Long userId, String messageType);

    /**
     * 查询用户订单如未读标记已读
     */
    boolean updateMessage(Long userId, String targetId);

    /**
     * 将用户所有订单消息更新为已读
     */
    boolean updateByUser(Long userId, Integer type);

    /**
     * 根据用户id查询消息列表
     */
    List<String> selectByUser(Long userId);

}